home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DS-CD ROM 2 1993 August
/
DS CD-ROM 2.Ausgabe (August 1993).iso
/
programm
/
ds0256
/
mdebug.txt
< prev
next >
Wrap
Text File
|
1992-11-30
|
18KB
|
384 lines
───────────────────────────────────────────────
MDEBUG V2.05 - Beschreibungen
Letzter Update: November 1992
Bernd Schemmer
───────────────────────────────────────────────
Diese Datei enthält beispielhafte Texte zur Beschreibung von MDEBUG in
Mailboxen oder in Shareware-Katalogen.
──────────────────────────────────────────────────────────────────────────────
Programm Information
──────────────────────────────────────────────────────────────────────────────
Archiv-Name:
────────────
Falls Sie MDEBUG in einen einzigen Archiv gepackt vertreiben (z.B. in
Mailboxen) benutzen Sie bitte folgenden Namen für das Archiv:
MD_V205D.ZIP
(bzw. die entsprechende Extension für andere Packer)
Programm Name, Kategorie:
─────────────────────────
Programm Name: MDEBUG
Version: V2.05
Kategorien: Programmier Utilities, Debugging Tools, TSR
Disassembler, Speicher Monitor, Interpreter
Betriebssystem-Erweiterung
Benötige Hard- und Software:
────────────────────────────
MDEBUG benötigt zwischen 16 und 50 K Speicher für den residenten
Teil (zum Installieren von MDEBUG werden 64 K freier Speicher
benötigt) und MS-DOS bzw. PC-DOS Version 3.0 oder höher
Beschreibungen von MDEBUG V2.05 für Shareware-Kataloge und Mailbox-Listen:
──────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────
Kurztext (1 Zeile):
MDEBUG V2.05 - Speichermonitor incl. Disassembler (TSR) von Bernd Schemmer
──────────────────────────────────────────────────────────────────────────────
Kurztext (formatiert, 2 Zeilen):
MDEBUG V2.05 ist ein speicherresidentes Debugging-Tool bestehend aus einem
Speichermonitor, einem Interpreter und einem Disassembler von Bernd Schemmer.
──────────────────────────────────────────────────────────────────────────────
Kurztext (formatiert, 3 Zeilen):
MDEBUG V2.05 ist ein speicherresidentes Debugging-Tool bestehend aus einem
Speichermonitor, einem Interpreter mit eigener Programmiersprache und einem
interaktiven und selektiven Disassembler. Autor: Bernd Schemmer
──────────────────────────────────────────────────────────────────────────────
Langtext (formatiert, ca. 300 Zeilen):
MDEBUG V2.05 Release 01.12.1992
───────────────────────────────
(c) 1988 - 1992 Bernd Schemmer
Kurzbeschreibung von MDEBUG
───────────────────────────
MDEBUG ist ein speicherresidentes Debugging-Tool für PCs unter MS/
PC-DOS. MDEBUG enthält einen Speichermonitor, einen Interpreter mit
eigener Programmiersprache und einen interaktiven und selektiven
Disassembler.
MDEBUG wurde ursprünglich für die Ermittlung von undokumentierten
Strukturen des Betriebssystems DOS entwickelt, kann aber vielfältig
eingesetzt werden. (z.B. zur Unterstützung bei der Programmierung).
MDEBUG richtet sich vor allen an Programmierer/innen mit gutem bis
sehr gutem Wissen über ihren PC und dem Betriebssystem MS-DOS bzw.
PC-DOS (und an die, die es noch werden wollen).
Hardware- und Software-Vorraussetzungen für MDEBUG
──────────────────────────────────────────────────
MDEBUG läuft auf jedem IBM-kompatiblen PC/XT/AT/386er. Unterstützt
werden alle Graphikkarten in allen Modi mit 80 oder mehr Spalten
pro Zeile und 25 oder mehr Zeilen pro Seite.
Unter Zuhilfename von Bildschirmtreibern kann MDEBUG auch in den
Graphikmodi der einzelnen Graphikkarten aufgerufen werden.
MDEBUG benötigt nur 16 K Speicher für den residenten Teil (ohne
Online-Hilfe und Disassembler), für die Installation werden 64 K
freier Speicher benötigt.
MDEBUG benötigt MS-DOS bzw. PC-DOS ab Version 3.0.
Einsatzgebiete für MDEBUG
─────────────────────────
Da MDEBUG speicherresident ist, kann es vorzüglich zur Unter-
stützung von anderen Debuggern eingesetzt werden. Zum Testen von
eigenen Programmen stellt MDEBUG über den User-Interrupt ein Inter-
face zum gezielten Aufruf von MDEBUG und zur Manipulation der
internen Daten von MDEBUG zur Verfügung.
MDEBUG gestattet auch den Aufruf über jeden beliebigen Interrupt.
MDEBUG kann gezielt zur Inspektion und Änderung von Speicher-
bereichen im Hauptspeicher eingesetzt werden (z.B. zur Änderung
der Daten im BIOS-Segment oder zur Änderung der DOS-internen
Datenstrukturen).
Damit hierdurch nicht jeder Benutzer Unfug anrichten kann, kann
MDEBUG durch ein (jederzeit ein- und ausschaltbares) Passwort
geschützt werden.
MDEBUG ist über Parameter völlig frei konfigurierbar (z.B. Hotkey,
Farbeinstellungen, User-Int, Fensterpositionen, etc). Die aktuellen
Einstellungen einer residenten Version von MDEBUG können ebenfalls
jederzeit geändert werden. Selbst die Tastenbelegung von MDEBUG
kann den eigenen Wünschen bzw. der vorhandenen Hardware angepasst
werden.
Dokumentation und Online-Hilfe
──────────────────────────────
MDEBUG wird mit einer ausführlichen Ondisk-Dokumentation geliefert.
Diese beinhaltet neben der vollständigen Beschreibung von MDEBUG
auch eine ausführliche Auflistung der Interna von MDEBUG und die
vollständige Dokumentation der Interfaces von MDEBUG (User-Int,
Bildschirmtreiber und Kommandotreiber, s.u.).
Die Dokumentation enthält zudem umfangreiche Beispiele für die
Möglichkeiten von MDEBUG.
Für die Hilfestellung während der Benutzung besitzt MDEBUG eine
leistungsfähige Online-Hilfe.
Der Monitor von MDEBUG
──────────────────────
Aufbau des Monitorfensters von MDEBUG:
╔═══════════════════════════════ MDEBUG V2.05 ═══════[b*]════════════════════╗
║ DS:SI Adr.: 23B9:2BCE SE: 23B9 OF: 2BCE Suchen: HelpPC.■■■, ║
╟──────┬─ Offset: 2BCE [= 48h = #072 = 'H']───────────────┬──────────────────╢
║ 2BCE │ 48 65 6C 70 50 43 2E 4E 44 58 2C 20 69 73 20 48 │ HelpPC.NDX, is H ║
║ 2BDE │ 4C 50 20 76 61 72 69 61 62 6C 65 20 73 65 74 3F │ LP variable set? ║
║ 2BEE │ 20 48 45 4C 50 50 43 2E 4E 44 58 20 4D 61 69 6E │ HELPPC.NDXMain ║
║ │ ── FS:FO => 561A:EBB5 ────────────────────────── │ ║
║ EBB5 │ 48 65 6C 70 2E 2E 20 20 20 20 20 20 20 20 20 6A │ Help.. j ║
║ EBC5 │ 6D 70 20 50 72 6F 67 45 72 72 6F 72 2E 2E 3B 20 │ mp ProgError..; ║
║ EBD5 │ 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D │ ---------------- ║
║ EBE5 │ 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2E 2E 6C 31 │ ------------..l1 ║
╚══════╧══════════════[ (c) Bernd Schemmer 1988 - 1992 ]══╧══════════════════╝
Der Monitor von MDEBUG arbeitet mit zwei unabhängigen Fenstern zur
Anzeige von Speicherinhalten. Die Größe der Fenster ist dabei frei
variierbar und die angezeigten Speicherbereiche können beliebig
gescrollt werden. Angezeigt wird der Speicherinhalt jeweils in
hexadezimaler Darstellung und in ASCII-Darstellung. Die Register,
aus denen die Startadresse des ersten Monitor-Fensters ermittelt
werden sollen, können frei bestimmt werden (z.B. DS:SI, DX:AX).
Die Anzeige des Monitors wird von MDEBUG laufend (!) aktualisiert -
auch bei der Eingabe von Befehlen im Interpreter und falls keine
Eingabe erfolgt. Die laufende Aktualisierung ist natürlich auch
abschaltbar.
Der Monitor gestattet die Anzeige und Veränderung von beliebigen
RAM-Bereichen im ersten Megabyte des Speichers des PCs. (im Hex-
oder im ASCII-Modus). Die Suche von bestimmten Zeichenketten ist
ebenfalls möglich (incl. Verwendung von Jokern im Suchstring).
Außerdem sind im Monitor (u.a.) verschiedene Befehle zum bequemen
Durchlaufen von verzeigerten Listen (near, far oder die MCB-
Liste) implementiert.
Der Interpreter von MDEBUG
──────────────────────────
Aufbau des Interpreterfensters von MDEBUG:
╔ Passwort OFF ════════════════════ MDEBUG V2.05 ════[UqI]═════════════════════╗
║ Befehl: ║
╟────────┬──────────────────────────────────────────────────M──────────────────╢
║CS: 31DD│ ╓─────────── Register ─────────────────────────╖ 1 0EB0:0000 LASTBUF║
║R┬──────┤ ║ AX = 0500 BX = 0000 CX = 0A0D DX = FFFF ║ 2 0974:0000 1. MCB ║
║1│ 0080 │ ║ SI = 00D3 DI = 00D3 DS = 022C ES = 022C ║ 3 022C:7420 1. DPB ║
║2│ 31DD │ ║ BP = 2DB2 SS = 022C SP = 09F6 ║ 4 022C:0098 SDL ║
║3│ D061 │ ║ Flags = ....__I____A__._ ║ 5 0070:01A4 CLOCK ║
║4│ 0000 │ ║ R0 = $0000000101000100 = 0144 ║ 6 0070:016E CON ║
║5│ 0000 │ ║ R8 = #24930 (+#24930) = 6162 = 'ab' ║ 7 0DC9:0000 BUF ║
║6│ 0000 │ ║ Ruecksprung-Adresse = 022C:3FEE ║ 8 0F13:0000 PRet ║
║7│ 0000 │ ║ Busy-Flag = 01 DIB = 022C:001E ║ 9 0A08:0000 PFileT ║
╚═╧══════╧═╩═══════════[ (c) Bernd Schemmer 1988 - 1992 ]═╩═╩══════════════════╝
Zur Unterstützung des Monitors besitzt MDEBUG einen leistungs-
fähigen Interpreter. Im Fenster des Interpreters werden die Inhalte
der Prozessor-Register und die wesentlichen Adressen aus dem DOS-
Info-Block angezeigt. Außerdem werden (u.a.) die Inhalte der 9
von MDEBUG zur Verfügung gestellten Hilfsregister angezeigt wobei
der Inhalt von mehreren Hilfsregistern in verschiedenen Inter-
pretationen angezeigt wird. MDEBUG kann daher z.B. zur Umrechnung
von Werten benutzt werden. (binär, dezimal mit Vorzeichen, dezimal
ohne Vorzeichen, hexadezimal oder als ASCII-Zeichen).
Für kompliziertere Aufgaben besitzt der Interpreter eine eigene
Programmiersprache mit mehr als 40 (!) Befehlen (z.B. zur Manipu-
lation von Registern oder Speicherstellen, zur Berechnung von
Formeln, zum Ausführen von Maschinencode, zur Anzeige der DOS-
internen Tabellen und Listen, usw). Auch die Ausführung von Inter-
rupts ist über MDEBUG problemlos möglich, wobei das Reentrance-
Problem von MS-DOS elegant gelöst ist. MDEBUG erlaubt es u.a. auch,
dem unterbrochenen Prozess veränderte Registerwerte zu übergeben
oder den unterbrochenen Prozess abzubrechen. Über den B-Befehl
können zudem alle Maschinencodes des installierten Prozessor aus-
geführt werden. MDEBUG verfügt auch über einen sehr schnellen
Befehl zur Suche von beliebigen Bytefolgen im Speicher, wobei in
der zu suchenden Bytefolge auch Joker, Prefixe und Intervalle ange-
geben werden können.
Da mehrere Befehle auch auf einmal ausgeführt werden können und
auch Befehle zur bedingten Ausführung von Befehlen und zur Pro-
grammierung von Schleifen (REPEAT-UNTIL, DO-WHILE, FOR-DO und
Endlos-Schleifen mit Abbruchmöglichkeit) vorhanden sind, können
auch kleinere 'Routinen' erstellt und ausgeführt werden. Zur
Verkettung von mehreren Befehlszeilen können Befehlszeilen auch in
beliebigen Speicherbereichen gesichert und später aus diesen heraus
restauriert und ausgeführt werden.
Explizite Werte können in allen Formaten mit einer Basis zwischen
2 und 16 (z.B. binär, octal, dezimal oder hexadezimal) oder auch
als String eingegeben werden. Natürlich können auch Ausdrücke
benutzt werden.
Für Ausdrücke sind folgende Operatoren implementiert:
- arithmetisch: +, -, /, *, \ (MODULO),
- logisch: & (AND), | (OR), ! (XOR)
«, (SHIFT LEFT), » (SHIFT RIGHT)
<, >, =, ¬
% (Teste Bit)
In Ausdrücken können maximal 5 Klammerebenen verwendet werden.
Erweiterungen von MDEBUG über Kommandotreiber
─────────────────────────────────────────────
MDEBUG gestattet es, die Tastenbelegung und die Befehle über
Kommandotreiber beliebig umzudefinieren bzw. neue Tastenbelegungen
und Befehle zu implementieren.
Zur Shareware-Version von MDEBUG werden schon mehrere Kommando-
treiber mitgeliefert.
Der auch schon in der Shareware-Version enthaltene Kommandotreiber
MDHISDRV.COM stellt z.B. eine History-Funktion für MDEBUG zur
Verfügung. Er gestattet es zudem 10 Tasten jeweils mit einer
Befehlszeile für MDEBUG zu belegen. Selbstverständlich können die
Befehlszeilen und die Puffer von MDHISDRV auch in einer Datei
gesichert und später wieder eingelesen werden.
Der Disassembler von MDEBUG
───────────────────────────
Aufbau des Disassemblerfensters von MDEBUG:
╔══ MDDISDRV V2.05 ═════ Ziel-CPU: V20/ 8087 ══[inst. CPU: V20/-----]══════╗
1 2E16:2646 3C 41 CMP AL,041 ;='A' = 65 =0100_0001xB [ 8086]+ ║
║ 2E16:2648 72 FA JB 02644 [ 8086]+ ║
║ 2E16:264A 3C 5A CMP AL,05A ;='Z' = 90 =0101_1010xB [ 8086]+ ║
║ 2E16:264C 77 F6 --> JA 02644 [ 8086]+ ║
║ 2E16:264E 2C 41 SUB AL,041 ;='A' = 65 =0100_0001xB [ 8086]+ ║
║ 2E16:2650 53 PUSH BX [ 8086]+ ║
║ 2E16:2651 BB DC 11 MOV BX,011DC ;= 4572 [ 8086]+ ║
║ 2E16:2654 D7 XLAT [ 8086]+ ║
║ 2E16:2655 5B POP BX [ 8086]+ ║
2 2E16:2656 F8 CLC [ 8086]+ ║
╟─ akt. Stack-Element: 4 ── Disp. Code: A Daten: A ─[BPuWRfapK]──[lpt1, 55]───╢
║ 2E16:24D0 2E16:2525 3DE2:8128 475C:A1DF ║
╟─ Register: CS: 2E16 DS: 59B5 ES: 59B5 SS: 59B5 GS: 0000 FS: 0000 HB: 0000 ──╢
║ 2E16:2644 F9 STC [ 8086]+ ╣
║ 2E16:2645 C3 RET [ 8086]+ ║
║ < Tastenbelegung > ║
╚══════════════════════[ (c) Bernd Schemmer 1991 - 1992 ]══════════════════════╝
Der ebenfalls schon in der Shareware-Version enthaltene Kommando-
treiber MDDISDRV.COM stellt einen interaktiven und selektiven
Disassembler für MDEBUG zur Verfügung. D.h. mit MDEBUG und MDDISDRV
kann jederzeit beliebiger Code im Speicher überprüft werden.
MDDISDRV beherrscht alle Opcodes der Prozessoren 8086/8088, 80186/
80188, 80286 (incl. der Opcodes für den Protected Mode), 80386,
des V20/V30 (incl. der Opcodes, die nur von diesen Prozessoren
beherrscht werden) und alle Opcodes der CoProzessoren 8087, 80287
und 80387. Im Gegensatz zu anderen Disassemblern können der Prozes-
sor und der Coprozessor für die disassembliert werden soll beliebig
gewählt werden (daher 'selektiv').
Neben einer komfortablen Bedienung bietet MDDISDRV selbstverständ-
lich auch die Möglichkeit, disassemblierten Code in eine Datei zu
sichern. Hierfür stehen mehrere Formate zur Verfügung, u.a. ein
Format in dem die Datei mit dem disassemblierten Code direkt ohne
Änderungen als Eingabedatei für den A86 benutzt werden kann.
MDDISDRV ermöglicht es auch, beliebige Datenbereiche im Dump-Format
und im Data-Format (meint 'db nn,nn,...'-Zeilen) in eine Datei zu
schreiben bzw. auf den Drucker auszugeben.
Weitere Features von MDDISDRV:
- Online-Hilfe
- belegt nur ca. 17 K Speicher
- direkte Anzeige von Speicherstellen, die durch einen Befehl gele-
sen oder verändert werden, wobei Segment-Prefixe berücksichtigt
werden.
- Befehle mit impliziten oder expliziten Sprungziel (z.B. CALL nn,
JMP nn, INT nn, INTO, etc.) können mit einem Tastendruck verfolgt
werden. Mittels eines eigenen Adressen-Stacks kann die Rückkehr
ebenfalls über einen einzigen Tastendruck erfolgen.
- Adressen aus Befehlen (Speicheroperanden oder Sprungziele) können
absolut oder IP-relativ ausgegeben werden.
- Ermöglicht die Suche von Befehlen, die auf eine Speicherstelle
zugreifen.
- Ermöglicht die Suche von Befehlen, die eine Routine/Adresse auf-
rufen.
- Ausgabe des Prozessors, der für einen Befehl mindestens nötig ist
- MDDISDRV behandelt alle Opcodes wie die aktuelle Ziel-CPU (auch
Opcodes mit unmöglichen Operanden, Opcodes mit Prefixbytes, unbe-
kannte ESC-Opcodes und undokumentierte Opcodes)
- Disassemblieren des Codes einer Interrupt-Routine durch Eingabe
der Nummer des Interrupts möglich
- unterstützt bis zu 9 (virtuelle) Drucker
Unterschiede zwischen der Shareware- und der Vollversion
────────────────────────────────────────────────────────
In der Vollversion kann die Shareware-Meldung beim Installieren von
MDEBUG entfernt werden. Zudem können in der Vollversion die Vor-
einstellungen für die Parameter geändert werden. Die Vollversion
enthält daneben noch mehrere Utilities für die Arbeit mit MDEBUG
(u.a. zwei Programme zum Erstellen und Testen von neuen Hilfstext-
dateien für die Onlinehilfe) und die kommentierten Quelltexte für
jeweils einen Kommando- und einen Bildschirmtreiber.
Die Vollversion kostet 75,- DM (+ 6,- DM Portokosten).
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓┌──────────────────────────────────────────────────────────────────┐▓▓
▓│ MDEBUG gibt Ihnen die volle Kontrolle über Ihren PC - jederzeit! │░▓
▓└──────────────────────────────────────────────────────────────────┘░▓
▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓